#include <stdlib.h>
#include "bool.h"
#include "pila.h"
#include "abb.h"

struct spila{
  abb *p; /*arreglo de punteros a arboles*/
  int size;
  int cant;
  int fst;
};
 

pila
pila_empty()
{
   pila pp;
   pp=(pila)malloc(sizeof(struct spila));
   pp->p=NULL;
   pp->size=0;
   pp->cant=0;
   pp->fst=0;

	return pp;	
}

pila
pila_push (abb e, pila p)
{
  p->size+=1;
  p->cant+=1;
  p->p=(abb*)realloc(p->p,(p->cant)*sizeof(abb));
  p->p[(p->cant)-1]=e;

  return p;
}


abb 
pila_fst(pila p)
{
  abb tmp;
  tmp=p->p[(p->fst)];
  return tmp;
  
}

pila
pila_fst_del(pila p)
{
  p->size=(p->size)-1;
	p->fst+=1;
  return p;
}


bool
pila_is_empty(pila p)
{
  return (p->size==0);
}

pila
pila_destroy(pila p)
{
  free(p->p);
  /*  free(p);*/
  return NULL;
} 
 

